package com.example.activitysign.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.activitysign.entity.ActivityAward;
import com.example.activitysign.pages.PageResult;
import com.example.activitysign.pages.PageValidate;
import com.example.activitysign.validate.ActivityAwardCreateValidate;
import com.example.activitysign.validate.ActivityAwardSearchValidate;
import com.example.activitysign.validate.ActivityAwardUpdateValidate;
import com.example.activitysign.vo.activity.ActivityAwardDetailVo;
import com.example.activitysign.vo.activity.ActivityAwardListedVo;
import com.example.activitysign.vo.activity.ActivityUserAwardVo;

/**
 * 奖品服务接口类
 *
 * @author fei
 */
public interface IActivityAwardService extends IService<ActivityAward> {

    /**
     * 奖品列表
     *
     * @param pageValidate   分页参数
     * @param searchValidate 搜索参数
     * @return PageResult<ActivityAwardListedVo>
     * @author fei
     */
    PageResult<ActivityAwardListedVo> list(PageValidate pageValidate, ActivityAwardSearchValidate searchValidate);

    /**
     * 奖品详情
     *
     * @param id 主键ID
     * @return ActivityAwardDetailVo
     * @author fei
     */
    ActivityAwardDetailVo detail(Long id);

    /**
     * 奖品新增
     *
     * @param createValidate 参数
     * @author fei
     */
    void add(ActivityAwardCreateValidate createValidate);

    /**
     * 奖品编辑
     *
     * @param updateValidate 参数
     * @author fei
     */
    void edit(ActivityAwardUpdateValidate updateValidate);

    /**
     * 奖品删除
     *
     * @param id 主键ID
     * @author fei
     */
    void del(Long id);

    PageResult<ActivityUserAwardVo> userGetList(PageValidate pageValidate, ActivityAwardSearchValidate searchValidate);
}

